package situ.autoweter.dao;
import java.util.*;

import situ.autoweter.common.Assist;
import situ.autoweter.entity.PyBilldetail;
import org.apache.ibatis.annotations.*;
import situ.autoweter.entity.RdRead;

/**
 * PyBilldetail的Dao接口
 * 
 * @author 
 *
 */
@Mapper
public interface PyBilldetailDao {

	/**
	 * 获得PyBilldetail数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getPyBilldetailRowCount(Assist assist);
	
	/**
	 * 获得PyBilldetail数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<PyBilldetail> selectPyBilldetail(Assist assist);
	/**
	 * 通过PyBilldetail的id获得PyBilldetail对象
	 * 
	 * @param id
	 * @return
	 */
	PyBilldetail selectPyBilldetailById(Object id);
	
	/**
	 * 获得一个PyBilldetail对象,以参数PyBilldetail对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 * 
	 * @param obj
	 * @return
	 */
	PyBilldetail selectPyBilldetailObjSingle(PyBilldetail obj);
	
	/**
	 * 获得一个PyBilldetail对象,以参数PyBilldetail对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<PyBilldetail> selectPyBilldetailByObj(PyBilldetail obj);

	/**
	 * 插入PyBilldetail到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertPyBilldetail(PyBilldetail value);
	
	/**
	 * 插入PyBilldetail中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNotNullPyBilldetail(PyBilldetail value);
	
	/**
	 * 批量插入PyBilldetail到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertPyBilldetailByBatch(List<PyBilldetail> value);
	/**
	 * 通过PyBilldetail的id删除PyBilldetail
	 * 
	 * @param id
	 * @return
	 */
	int deletePyBilldetailById(Object id);
	
	/**
	 * 通过辅助工具Assist的条件删除PyBilldetail
	 * 
	 * @param assist
	 * @return
	 */
	int deletePyBilldetailByAssist(Assist assist);
	
	/**
	 * 通过PyBilldetail的id更新PyBilldetail中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updatePyBilldetailById(PyBilldetail enti);
	
	/**
	 * 通过PyBilldetail的id更新PyBilldetail中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNotNullPyBilldetailById(PyBilldetail enti);
	
	/**
	 * 通过辅助工具Assist的条件更新PyBilldetail中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updatePyBilldetail(@Param("enti") PyBilldetail value, @Param("assist") Assist assist);
	
	/**
	 * 通过辅助工具Assist的条件更新PyBilldetail中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNotNullPyBilldetail(@Param("enti") PyBilldetail value, @Param("assist") Assist assist);
/*
分页查
 */
	List<Map> queryFy(PyBilldetail pyBilldetail);
	/*
	查rdread的日期
	 */
@Select("select r.ReadDate from RD_Read r")
	List<RdRead> queryRdRq(RdRead rdRead);
//易芷若
	//月资金全查
	List<Map> find1(@Param("ReadDatenb") String ReadDatenb);

}